package srv;

import java.util.ArrayList;
import java.util.List;

import beans.ItemSolicitudCotizacionBean;
import beans.SolicitudCotizacionBean;


import dao.HibernateSolicitudCotizacionBeanDAO;
import entities.CotizacionEntity;
import entities.ItemSolicitudCotizacionEntity;
import entities.SolicitudCotizacionEntity;

public class SolicitudCotizacionSRV 
{
	private static HibernateSolicitudCotizacionBeanDAO dao;
	private static SolicitudCotizacionSRV instancia;

	static 
	{
		dao = HibernateSolicitudCotizacionBeanDAO.getInstancia();
	}
	
	public static SolicitudCotizacionSRV getInstancia()
	{
		if (instancia == null)
		{
			instancia = new SolicitudCotizacionSRV();
		}
		return instancia;
	}
	
	public SolicitudCotizacionEntity pasadoDesdeBean( SolicitudCotizacionBean solicitudCotizacionBean )
	{
		SolicitudCotizacionEntity solicitudCotizacion = new SolicitudCotizacionEntity();
		solicitudCotizacion.setNumero( solicitudCotizacionBean.getNumero() );
		solicitudCotizacion.setFechaSolicitud( solicitudCotizacionBean.getFechaSolicitud() );
		
		List<ItemSolicitudCotizacionEntity> lisce = new ArrayList<ItemSolicitudCotizacionEntity>();
		for( ItemSolicitudCotizacionBean iscb : solicitudCotizacionBean.getItems() )
		{
			ItemSolicitudCotizacionEntity isce = new ItemSolicitudCotizacionEntity();
			isce.setCantidad( iscb.getCantidad() );
			isce.setPrecio( iscb.getPrecio() );
			isce.setRodamiento( RodamientoSRV.getInstancia().pasadoDesdeBean( iscb.getRodamiento() ) );
			
			lisce.add( isce );
		}
		solicitudCotizacion.setItems( lisce );
		
		return solicitudCotizacion;
	}
	
	public SolicitudCotizacionBean pasadoDesdeEntity( SolicitudCotizacionEntity solCotE )
	{
		SolicitudCotizacionBean solicitudCotizacion = new SolicitudCotizacionBean();
		solicitudCotizacion.setNumero( solCotE.getNumero() );
		solicitudCotizacion.setFechaSolicitud( solCotE.getFechaSolicitud() );
		
		List<ItemSolicitudCotizacionBean> liscb = new ArrayList<ItemSolicitudCotizacionBean>();
		for( ItemSolicitudCotizacionEntity isce : solCotE.getItems() )
		{
			ItemSolicitudCotizacionBean iscb = new ItemSolicitudCotizacionBean();
			iscb.setCantidad( isce.getCantidad() );
			iscb.setPrecio( isce.getPrecio() );
			iscb.setRodamiento( RodamientoSRV.getInstancia().pasadoDesdeEntity( isce.getRodamiento() ) );
			
			liscb.add( iscb );
		}
		solicitudCotizacion.setItems( liscb );
		
		return solicitudCotizacion;	
	}
	
	public void grabarSolicitudCotizacion( SolicitudCotizacionBean solCotizacion )
	{
		SolicitudCotizacionEntity solComp = this.pasadoDesdeBean( solCotizacion );
		dao.grabarSolicitudCotizacion( solComp );
	}
	
	/*
	public boolean aprobarSolicitudCotizacion( SolicitudCotizacionBean solComp)
	{
		return dao.aprobarSolicitudCotizacion( solComp );
	}
	*/
}

